package xiaomin.demo.algorithm;

import java.util.HashMap;
/*
给定 一个 整型 的 数组， 找出 其中 的 两个 数 使其 和 为 某个 指 定的 值， 并 返回 这 两 个数 的 下标（ 数组 下标 是 从 0 开始）。
假设 数组 元素 的 值 各不相同， 则要 求 时间 复杂度 为 O（ n）， n 为 数组 的 长度。

陈东锋. 进军硅谷:程序员面试揭秘 (技术移民参考手册) (p. 61). 电子工业出版社. Kindle 版本.
 */
public class Lesson02 {
    public static void run(){
        int[] a={3,2,1,5};
        int result=8;

        HashMap<Integer, Integer> dic=new HashMap<Integer, Integer>();

        for(int i=0;i<a.length;i++){
            dic.put(a[i],i);//key:数值，value：下标
        }

        for(int i=0;i<a.length;i++){
            int chazhi=result-a[i];
            if(dic.containsKey(chazhi)){
                System.out.println("成功");
                System.out.println(i);
                System.out.println(dic.get(chazhi));
                return;
            }
        }
        System.out.println("失败");


    }
}
